Random number generators (RNG) are used in many technical fields, such as for example, cryptography, for generating cryptographic keys and for setting in a random manner certain variables in cryptographic protocols, video-games, and for realizing games strictly based on chance.
RNGs may be generated via software or via hardware. Software-based RNGs implement an algorithm that, iterated from a certain start value called the “seed” of the algorithm, generates a sequence of numbers uniformly distributed in a certain interval. Clearly, any sequence of number produced by them is periodical and may be predicted by knowing the algorithm and the seed of the algorithm. These software generators are also called Pseudo-RNGs because the sequences of numbers produced by these generators are predictable, and thus they are not true random sequences. Notwithstanding that their realization is easy, Pseudo-RNGs are unsuitable in applications, such as cryptography, in which it is absolutely necessary to generate unpredictable cryptographic keys.
Hardware-based RNGs are devices that generate random number sequences by exploiting physical phenomena. These generators may be deterministic systems with a very complex dynamic or systems, also called True-RNGs, that exploit chaotic or noisy physical phenomena, such as for instance the thermal noise of a resistor or a diode. One characteristic of this kind of RNG is that the generated sequence of numbers is practically unpredictable, which makes them particularly suited to be used in cryptography.
There are many examples of RNGs based on chaotic physical phenomena, three of which are disclosed herein.
U.S. Pat. No. 6,061,702 describes a True-RNG that uses a voltage controlled oscillator (VCO) driven by the signal obtained by amplifying the thermal noise of a pair of resistors. The VCO generates a signal that has a frequency that varies in a random manner and that is used to sample the signal produced by a plurality of stable oscillators whose frequency is greater than that of the signal produced by the VCO.
U.S. Pat. No. 5,961,577 describes a True-RNG comprising an oscillator, composed of a plurality of ring amplifiers having noise sensitive circuits, and a comparator that generates a random logic signal by comparing the output of one of the amplifiers with a pre-established threshold.
The architecture of the above mentioned circuits is relatively complex because they require a VCO or a plurality of ring amplifiers.
U.S. Pat. No. 6,195,669 describes a True-RNG in which a noisy signal, produced by a noise generator, is input to a high gain amplifier that, having blocking capacitors for the DC component (offset of the signal), amplifies only the AC component of the signal. This amplified AC component is converted to a random bit sequence by an analog-to-digital converter. This circuit needs blocking capacitors for preventing the DC component of the noisy signal (offset of the signal) from saturating the high gain amplifier. Therefore, an implied drawback of this circuit is that it operates with a signal that sometimes has an inverted polarity, and thus the circuit that processes this signal must be supplied with a positive and a negative supply voltage.